Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

343
Views
Error: [ngModel:datefmt] Se esperaba que `2015-05-29T19:06:16.693209Z` fuera una fecha - Angular

Estoy trabajando en una aplicación angular con Django con rest-framework .

La aplicación recibe su información con json del servidor. Una de las claves es created_time ... El valor de este campo tiene el formato según iso-8601 , por ejemplo, 2015-05-29T19:06:16.693209Z .

En el cliente tengo un campo:

 <input type="time" ng-model="created_time">

Pero cuando llegan los datos me sale este error:

 Error: [ngModel:datefmt] Expected `2015-05-29T19:06:16.693209Z` to be a date http://errors.angularjs.org/1.3.13/ngModel/datefmt?p0=2015-05-29T19%3A06%3A16.693209Z at REGEX_STRING_REGEXP (angular.js:63) at Array.<anonymous> (angular.js:19807) at Object.ngModelWatch (angular.js:23289) at Scope.$get.Scope.$digest (angular.js:14235) at Scope.$get.Scope.$apply (angular.js:14506) at done (angular.js:9659) at completeRequest (angular.js:9849) at XMLHttpRequest.requestLoaded (angular.js:9790)

Ya probé todo :( el formato es exactamente como las instrucciones en los documentos de angular...

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Esto debe estar sucediendo con angular 1.3+. 1.3+ en adelante ng-model para la entrada de fecha/hora debe ser un objeto de fecha válido, ya no se permite la representación de cadena de fecha. Debe convertir la cadena en objeto de fecha ( $scope.created_time = new Date(dateString) ) y vincularla al modelo ng. Si sigue el enlace de error , tiene una descripción clara sobre el error y cómo resolverlo.

Todas las entradas relacionadas con la fecha requieren que el modelo sea un objeto de fecha. Si el modelo es otra cosa, se lanzará este error. Angular no establece errores de validación en este caso, ya que esos errores se muestran al usuario, pero el estado erróneo fue causado por una lógica de aplicación incorrecta y no por el usuario.

over 4 years ago · Santiago Trujillo Report

0

Si obtiene sus datos de un Servicio REST, simplemente puede convertir sus campos a Fecha.

 $http.get(url).success(function(data){ $scope.data = data; // get row data $scope.data.mydatefield = new Date($scope.data.mydatefield); // convert filed to date });
over 4 years ago · Santiago Trujillo Report

0

Cree una directiva simple que convierta el valor del modelo:

HTML:

 <input date-input type="time" ng-model="created_time">

Directiva:

 app.directive('dateInput', function(){ return { restrict : 'A', scope : { ngModel : '=' }, link: function (scope) { if (scope.ngModel) scope.ngModel = new Date(scope.ngModel); } } });
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!